package ${domain}.module.wsys.mgr;

import ${domain}.frame.auth.Token;
import ${domain}.module.wsys.req.ProfilesCreateRequest;
import ${domain}.module.wsys.req.ProfilesDeleteRequest;
import ${domain}.module.wsys.req.ProfilesFindRequest;
import ${domain}.module.wsys.req.ProfilesUpdateRequest;
import ${domain}.module.wsys.rsp.ProfilesCreateResponse;
import ${domain}.module.wsys.rsp.ProfilesDeleteResponse;
import ${domain}.module.wsys.rsp.ProfilesFindResponse;
import ${domain}.module.wsys.rsp.ProfilesUpdateResponse;

/**
 * 系统配置
 *
 * @author wangbing
 * @version 0.0.1
 * @since 2020-07-06
 */
public interface ProfilesManager {

    /**
     * 插入
     *
     * @param request 请求对象
     * @param token   令牌
     * @return
     */
    ProfilesCreateResponse create(ProfilesCreateRequest request, Token token);

    /**
     * 逻辑删除
     *
     * @param request 请求对象
     * @param token   令牌
     * @return
     */
    ProfilesDeleteResponse delete(ProfilesDeleteRequest request, Token token);

    /**
     * 更新
     *
     * @param request 请求对象
     * @param token   令牌
     * @return
     */
    ProfilesUpdateResponse update(ProfilesUpdateRequest request, Token token);

    /**
     * 查询
     *
     * @param request 请求对象
     * @param token   令牌
     * @return
     */
    ProfilesFindResponse find(ProfilesFindRequest request, Token token);

    /**
     * 获得当前环境配置
     *
     * @param key          配置项名
     * @param defaultValue 默认值
     * @return
     */
    String getString(String key, String defaultValue);

    /**
     * 获得当前环境配置
     *
     * @param key          配置项名
     * @param defaultValue 默认值
     * @return
     */
    int getInt(String key, int defaultValue);

    /**
     * 获得当前环境配置
     *
     * @param key          配置项名
     * @param defaultValue 默认值
     * @return
     */
    long getLong(String key, long defaultValue);

    /**
     * 获得当前环境配置
     *
     * @param key          配置项名
     * @param defaultValue 默认值
     * @return
     */
    boolean getBoolean(String key, boolean defaultValue);
}
